package oriol.forns.gutierrez;

import java.util.ArrayList;

import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;

public class Shoots {

	private ArrayList<Objecte> bales;
	private ArrayList<Objecte> sprites;
	private Bitmap explota;
	private Bitmap bala;
	private BitmapFactory.Options options;
	private Resources resources;
	
	public Shoots(Resources res){
		sprites = new ArrayList<Objecte>();
		bales = new ArrayList<Objecte>();
		resources = res;
		options = new BitmapFactory.Options();
		options.inPreferredConfig = Bitmap.Config.ARGB_8888;
		explota = BitmapFactory.decodeResource(resources, R.drawable.explosionsprite, options);
		bala = BitmapFactory.decodeResource(resources, R.drawable.bala, options);
		GV.Instancies.trets = -1;
	}
	
	public void disparar(float bx, float by, float btx){
		bales.add(new Objecte(bx, by, 0, -7, 10, 15, bala));
		bales.add(new Objecte(bx+btx-10f, by, 0, -7, 10, 15, bala));
		GV.Instancies.trets -= 2;
	}
	
	public boolean destrueix(float bx, float by, float btx, float bty){
		boolean destruit = false;
		for (int i = bales.size()-1; i >= 0; i--){
			if(bales.get(i).x+bales.get(i).tx>bx && bales.get(i).x<bx+btx && bales.get(i).y+bales.get(i).ty>by && bales.get(i).y<by+bty) {
				bales.remove(i);
				destruit = true;
			}
		}
		if (destruit) {
			sprites.add(new Objecte(explota, bx, by, btx, bty, 0, 0, 5, 5, 1));
			++GV.marcador.punts;
		}
		return destruit;
	}
	
	public void colisions() {
		for (int i = bales.size()-1; i >= 0; i--) {
			if (bales.get(i).y < 0) {
				bales.remove(i);
			}
		}
	}
	
	public void actualitza() {
		for (int i = bales.size()-1; i >= 0; i--){
			bales.get(i).actualitza();
		}
		for(int i = sprites.size()-1; i >= 0 ; i--) {
			Objecte sprite = sprites.get(i);
			sprite.actualitza();
			if (sprite.acabat) sprites.remove(i);
		}
	}
	
	public void draw(Canvas canvas) {
		for (int i = bales.size()-1; i >= 0; i--){
			bales.get(i).draw(canvas);
		}
		for (int i = 0; i < sprites.size(); ++i) {
			sprites.get(i).draw(canvas);
		}
	}

	public void clean() {
		bales.clear();
	}
}
